package com.ruoyi.background.service;

import com.ruoyi.background.domain.AppWechatStep;
import com.ruoyi.background.domain.AppWechatUser;
import com.ruoyi.background.domain.WechatPhone;
import com.ruoyi.background.domain.WechatStep;
import org.springframework.scheduling.annotation.Async;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface IWechatApiService {

    /**
     * 获取用户openId是否登录
     *
     * @param code code
     * @return 用户信息
     */
    public AppWechatUser getUserOpenId(String code);


    /**
     * 更新sessionKey
     *
     * @param code code
     * @return 结果
     */
    public int updateSessionKey(String code);


    /**
     * 模拟生成tokens
     * @return list
     */
    public List<String> createTokens(AppWechatUser wechatUser);


    /**
     * 用户每天首次登录积分奖励
     *
     * @param wechatUser 用户
     */
    @Async
    @Transactional
    public void addUserLoginGrade(AppWechatUser wechatUser);


    /**
     * 获取微信小程序的accessToken
     *
     * @return string token
     */
    public String getAccessToken();


    /**
     * 获取用户手机号
     *
     * @param wechatPhone 小程序参数
     * @return 结果
     */
    public AppWechatUser getUserPhone(WechatPhone wechatPhone);

    /**
     * 获取用户的运动历史数据
     *
     * @param step 加密数据
     * @return 结果 list
     */
    public AppWechatStep getUserStepList(WechatPhone step);

    /**
     * 获取微信历史数据
     *
     * @return 结果
     */
    public List<WechatStep> getUserWechatHistory();
}
